Micron Document
Manual: `F0af`_`[The rngit Utility ↗`a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/using.md|anchor=the-rngit-utility]`_`f

`!rngit`! is a utility bundled with `F0af`_`[RNS`:/page/wiki.mu`path=RNS]`_`f that provides full Git repository hosting and interaction over `F0af`_`[Reticulum`:/page/wiki.mu`path=Reticulum_Protocol]`_`f, including task management, release distribution and `F0af`_`[NomadNet`:/page/wiki.mu`path=NomadNet]`_`f project pages.

It consists of the `B100`F9d9rngit`f`b CLI program for hosting and managing repositories, and the `B100`F9d9git-remote-rns`f`b remote helper that enables Git to communicate with `B100`F9d9rngit`f`b nodes. Once installed, it is possible to interact with Git repositories over Reticulum using the `B100`F9d9rns://`f`b URI scheme.`:cite-ref-1[`F5bf`_`[1`#cite-note-1]`_`f]

>>Contents

• `F0af`_`[Work documents`#work-documents]`_`f
• `F0af`_`[Repository structure`#repository-structure]`_`f
• `F0af`_`[Subcommands`#subcommands]`_`f
• `F0af`_`[Tips and tricks`#tips-and-tricks]`_`f
• `F0af`_`[Install/update Python packages`#install-update-python-packages]`_`f
• `F0af`_`[Official repositories`#official-repositories]`_`f
• `F0af`_`[References`#references]`_`f
• `F0af`_`[External links`#external-links]`_`f

>>Work documents

Rather than a traditional issue queue, `B100`F9d9rngit`f`b provides a work document management system (docs) for tracking tasks, investigations, issues and progress related to repositories. Users may be granted permission to create and push work document proposals over the network.

>>Repository structure

Repositories are organized into groups, each group being a directory containing `*bare`* Git repositories. A bare repository can be obtained with `B100`F9d9git clone --bare `*<URL>`*`f`b. Locations and permissions of groups may be configured in rngit's configuration file.

>>Subcommands

• `B100`F9d9rngit create`f`b (`F0af`_`[manual ↗`a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/git.md|anchor=creating-empty-repositories]`_`f)
• `B100`F9d9rngit fork`f`b (`F0af`_`[manual ↗`a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/git.md|anchor=forking-repositories]`_`f)
• `B100`F9d9rngit mirror`f`b (`F0af`_`[manual ↗`a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/git.md|anchor=mirroring-repositories]`_`f)
• `B100`F9d9rngit perms`f`b (`F0af`_`[manual ↗`a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/git.md|anchor=remote-permission-management]`_`f)
• `B100`F9d9rngit release`f`b (`F0af`_`[manual ↗`a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/git.md|anchor=release-management]`_`f)
• `B100`F9d9rngit sync`f`b (`F0af`_`[manual ↗`a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/git.md|anchor=manual-synchronization]`_`f)
• `B100`F9d9rngit work`f`b (`F0af`_`[manual ↗`a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/git.md|anchor=work-documents]`_`f)

>>Tips and tricks

>>>Install/update Python packages

It's possible to check, fetch, verify`:cite-ref-2[`F5bf`_`[2`#cite-note-2]`_`f] and install/update Python packages released as wheels as a one-liner:

`B100`F9d9rngit release rns://7649a50d84610232d1416b41d2896aff/reticulum/reticulum fetch "latest:rns-*.whl" && pip install ./rns-*.whl`f`b

Installing Python packages with rngit is more secure than using `B100`F9d9pip install`f`b, as `B100`F9d9pip`f`b doesn't verify releases or check signatures when installing from PyPi.

>>>>pip-rns

The third-party tool pip-rns provides a more streamlined experience when installing Python packages from rngit remotes. It supports pip, pipx, uv, and poetry backends, version pinning, signature verification, aliases, indexes, offline bundles, and more.

>>Official repositories

Reticulum is fully self-hosted and developed on Reticulum itself.

• `F0af`_`[RNS`:/page/wiki.mu`path=RNS]`_`f: `B100`F9d9rns://7649a50d84610232d1416b41d2896aff/reticulum/reticulum`f`b (`F0af`_`[Aleph Git ↗`a8d24177d946de4f1f0a0fe1af9a1338:/page/repo.mu`g=reticulum|r=reticulum]`_`f)
• `F0af`_`[LXMF`:/page/wiki.mu`path=LXMF]`_`f: `B100`F9d9rns://7649a50d84610232d1416b41d2896aff/reticulum/lxmf`f`b (`F0af`_`[Aleph Git ↗`a8d24177d946de4f1f0a0fe1af9a1338:/page/repo.mu`g=reticulum|r=lxmf]`_`f)
• `F0af`_`[LXST`:/page/wiki.mu`path=LXST]`_`f: `B100`F9d9rns://7649a50d84610232d1416b41d2896aff/reticulum/lxst`f`b (`F0af`_`[Aleph Git ↗`a8d24177d946de4f1f0a0fe1af9a1338:/page/repo.mu`g=reticulum|r=lxst]`_`f)
• `F0af`_`[NomadNet`:/page/wiki.mu`path=NomadNet]`_`f: `B100`F9d9rns://7649a50d84610232d1416b41d2896aff/reticulum/nomadnet`f`b (`F0af`_`[Aleph Git ↗`a8d24177d946de4f1f0a0fe1af9a1338:/page/repo.mu`g=reticulum|r=nomadnet]`_`f)
• `F0af`_`[Sideband`:/page/wiki.mu`path=Sideband]`_`f: `B100`F9d9rns://7649a50d84610232d1416b41d2896aff/reticulum/sideband`f`b (`F0af`_`[Aleph Git ↗`a8d24177d946de4f1f0a0fe1af9a1338:/page/repo.mu`g=reticulum|r=sideband]`_`f)
• Website: `B100`F9d9rns://7649a50d84610232d1416b41d2896aff/reticulum/website`f`b (`F0af`_`[Aleph Git ↗`a8d24177d946de4f1f0a0fe1af9a1338:/page/repo.mu`g=reticulum|r=website]`_`f)

`*`!Note:`! The GitHub repositories are mirrors that may lag behind.`*

>>References

`:cite-note-1`!1.`! `F0af`_`[↑`#cite-ref-1]`_`f `*Git Over Reticulum`*, Manual. `F0af`_`[`a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/git.md] ↗`_`f
`:cite-note-2`!2.`! `F0af`_`[↑`#cite-ref-2]`_`f `*Verified Releases`*, Manual. `F0af`_`[`a8d24177d946de4f1f0a0fe1af9a1338:/page/blob.mu`g=reticulum|r=reticulum|ref=HEAD|path=docs/markdown/git.md|anchor=verified-releases] ↗`_`f

>>External links

• Git Over Reticulum in the manual
• Distributed Development in the manual

>>RNS utilities

`B100`F9d9`F0af`_`[rncp`:/page/wiki.mu`path=Rncp]`_`f`f`b • `B100`F9d9rngit`f`b • `B100`F9d9`F0af`_`[rnid`:/page/wiki.mu`path=Rnid]`_`f`f`b • `B100`F9d9rnir`f`b • `B100`F9d9`F0af`_`[rnodeconf`:/page/wiki.mu`path=Rnodeconf]`_`f`f`b • `B100`F9d9`F0af`_`[rnpath`:/page/wiki.mu`path=Rnpath]`_`f`f`b • `B100`F9d9rnpkg`f`b • `B100`F9d9`F0af`_`[rnprobe`:/page/wiki.mu`path=Rnprobe]`_`f`f`b • `B100`F9d9`F0af`_`[rnsh`:/page/wiki.mu`path=Rnsh]`_`f`f`b • `B100`F9d9`F0af`_`[rnstatus`:/page/wiki.mu`path=Rnstatus]`_`f`f`b • `B100`F9d9`F0af`_`[rnx`:/page/wiki.mu`path=Rnx]`_`f`f`b